iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

用 vim 打造屬於自己的 IDE系列 第 5

Day 05 Vim Script !

  • 分享至 

  • xImage
  •  

大多數人一開始使用 vim 時,常常會因為他難以駕馭的操作方式,以及相較於其他 IDE 較為平庸的功能,而馬上就棄坑了 ...

那我真的覺得十分可惜!

vim 非常輕量化,在各種功能的調教方面也是完全的客製化,也可以根據開發的不同語言而載入相對應的外掛,這些是一般的 IDE 無法比擬的!(不是說肯定比 IDE 好,而是它有許多等著被挖掘的好處~)

這邊就提供幾個簡單的設定給大家參考,讓大家對 vim 進行調教吧!

Set & Unset

vim 中有許多的功能都是藉由開啟設定來啟動的,像是 :se number 就是顯示行數 (連行數都能自己設定要不要顯示,想不到吧~),這邊就來介紹幾個常用的設定吧,用 se 或者 set 指令都可以~ (都是在命令列模式下進行設定的哦!)

一般設定

指令 解釋
encoding=UTF-8 編碼
number 行數
showcmd 取得指令歷史
mouse=a 設定游標顯示樣式
ruler 設定顯示行列數 (顯示在畫面右下角)
history=1000 設定 undo 歷史紀錄數量
cursorline 高亮顯示游標的行
background=dark 設定背景色
foldmethod=indent 根據縮排折疊程式碼
foldlevel=100 設定折疊上限
expandtab 使用 whitespace 取代 tab
autoindent 啟用自動縮排

搜尋

指令 解釋
incsearch 即時顯示搜尋結果
hlsearch 高亮顯示搜尋結果
ignorecase 忽略大小寫
smartcase 我的理解是,如果有大寫則進行全比對
magic 設定 RegEx

Styles

跟眾多 IDE 一樣,vim 當然也能設定外觀顯示,說跟其他 IDE 不同的地方,也就是仍然使用指令來進行啦~

指令 解釋
syntax enable 啟用內容顯色
colorscheme [colorschema] 使用的顏色方案

Autocmd

重頭戲來了!我之所以對 vim 愛不釋手,有一個很特別的地方在於,他可以根據各種 event 發生的時候,去執行你想要針對檔案或 vim 進行更動~這邊就用兩個案例來舉例吧!

讀檔:

針對暫存器讀檔時執行的指令

au BufNewFile,BufRead *.py
    \ set tabstop=4
    \ set softtabstop=4
    \ set shiftwidth=4

此指令為:針對開啟副檔名為 .py 的檔案設定某些參數

啟用時執行自訂函式

開啟 vim 時執行的指令

function startUpFun()
    " TODO
endfunction
autocmd VimEnter * call startUpFunc()

此指令為:在進入 vim 時執行 startUpFunc() 這個函式

你可能會疑惑,怎麼分成 auautocmd 這兩種?但這兩個是一樣的功能唷!

到這邊為止 vim 基礎的介紹大概已經完畢了~雖然可能還是霧煞煞不過請大家試試看吧!
接下來我會針對我所自訂的開發環境介紹各個元件:如何安裝及使用


上一篇
Day 04 征服快捷鍵
下一篇
Day 06 vim + zsh + tmux
系列文
用 vim 打造屬於自己的 IDE19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言